const path = require('path')
const webpack = require('webpack')
function resolve(dir) {
  return path.join(__dirname, dir)
}
const CompressionPlugin = require('compression-webpack-plugin') // gzip 压缩的插件

const productionGzipExtensions = /\.(js|css|json|txt|html|ico|svg)(\?.*)?$/i // 要进行压缩的文件类型
// const publicPath = process.env.NODE_ENV === 'production' ? '../../' : './'
module.exports = {
  publicPath: './', // 基本路径
  // assetsPublicPath: './', // 基本路径
  runtimeCompiler: true,
  outputDir: 'dist', // 输出文件目录
  devServer: {
    port: 8887,
    open: true,
    disableHostCheck: true, // 配置本地自定义host
    proxy: {
      // cmmop代理
      '/api': {
        // target: 'http://hyga.hnlot.com.cn:8000', // 接口的域名-花垣
        target: 'https://cmmop.hnlot.com.cn', // 接口的域名-cmmop
        // target: 'http://temp.hntohere.com', // 临时域名-cmmop
        // secure: false, // 如果是https接口，需要配置这个参数
        changeOrigin: true, // 如果接口跨域，需要进行这个参数配置
        pathRewrite: {
          '^/api': ''
        }
      },
      '/zhuji': {
        // target: 'http://hyga.hnlot.com.cn:8000', // 接口的域名-花垣
        target: 'https://cmmop.hnlot.com.cn', // 接口的域名-cmmop
        // target: 'http://43.112.134.107:8092', // 接口的域名(周长健)
        // secure: false, // 如果是https接口，需要配置这个参数
        changeOrigin: true, // 如果接口跨域，需要进行这个参数配置
        pathRewrite: {
          '^/zhuji': ''
        }
      },
      '/iot': {
        // target: 'http://hyga.hnlot.com.cn:8000', // iot接口-花垣
        target: 'https://cmmop.hnlot.com.cn', // iot接口-cmmop
        // secure: false, // 如果是https接口，需要配置这个参数
        changeOrigin: true, // 如果接口跨域，需要进行这个参数配置
        pathRewrite: {
          '^/iot': ''
        }
      },
      '/plFind': {
        // target: 'http://hyga.hnlot.com.cn:8000', // 发现-花垣
        target: 'https://cmmop.hnlot.com.cn', // iot接口-cmmop
        // secure: false, // 如果是https接口，需要配置这个参数
        changeOrigin: true, // 如果接口跨域，需要进行这个参数配置
        pathRewrite: {
          '^/plFind': ''
        }
      },
      '/electricity': {
        target: 'https://cmmop.hnlot.com.cn', // 平台配置电压电流-cmmop
        // secure: false, // 如果是https接口，需要配置这个参数
        changeOrigin: true, // 如果接口跨域，需要进行这个参数配置
        pathRewrite: {
          '^/electricity': ''
        }
      }
    }
  },
  chainWebpack: config => {
    config.resolve.alias.set('@', resolve('src')) // key,value自行定义，比如.set('@@', resolve('src/components'))
    // config.when(process.env.NODE_ENV === 'production', config => {
    //   config
    //     .entry('app')
    //     .clear()
    //     .add('./src/main-prod.js')
    //   config.set('externals', {
    //     vue: 'Vue',
    //     'vue-router': 'VueRouter',
    //     // 'element-ui': 'element-ui',
    //     axios: 'axios',
    //     echarts: 'echarts',
    //     nprogreess: 'Nprogress'
    //   })
    //   config.plugin('html').tap(args => {
    //     args[0].isProd = true
    //     return args
    //   })
    // })
    // development
    // config.when(process.env.NODE_ENV === 'development', config => {
    //   config
    //     .entry('app')
    //     .clear()
    //     .add('./src/main-dev.js')
    //   config.plugin('html').tap(args => {
    //     args[0].isProd = false
    //     return args
    //   })
    // })
    // console.log('------', process.env.NODE_ENV)
    // console.log(process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'production')
    // config.when(process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'production', config => {
    //   // console.log('---------------------------')
    //   config
    //     .entry('app')
    //     .clear()
    //     .add('./src/main-dev.js')
    //   config.plugin('html').tap(args => {
    //     args[0].isProd = false
    //     return args
    //   })
    // })
  },
  configureWebpack: config => {
    config.plugins.push(
      new webpack.ProvidePlugin({
        'window.Quill': 'quill/dist/quill.js',
        Quill: 'quill/dist/quill.js'
      })
    )
    if (process.env.NODE_ENV === 'production') {
      config.plugins.push(
        new CompressionPlugin({
          algorithm: 'gzip',
          test: productionGzipExtensions,
          threshold: 10240,
          minRatio: 0.8,
          deleteOriginalAssets: false // 是否删除源文件
        })
      )
    }
  }
}
